home *** CD-ROM | disk | FTP | other *** search
/ GameWare Collection / GameWare Collection (CMS Software) (1993).iso / games / s_games / starflt.pat < prev    next >
Text File  |  1987-02-03  |  12KB  |  297 lines

  1.  
  2. Running Electronic Arts' "Starflight" on the IBM PCjr (revised)
  3. ---------------------------------------------------------------
  4.  
  5. Lee Johnson [71310,405] [Downloaded from Compuserve]
  6. October 8, 1986.
  7.  
  8. (16-colour PCjr patch corrected November 3, 1986.)
  9.  
  10. Introduction
  11. ------------
  12.  
  13. Although the label on the Starflight package reads "IBM AT, XT, PC, TANDY
  14. 1000, 1200, 3000 and all 100% IBM compatibles", Starflight does not run
  15. correctly on the IBM PCjr.  Fear not, for you CAN run Starflight on your
  16. PCjr, if you have enough memory.  And you can do it in vibrant colour, on
  17. an RGB display!
  18.  
  19. Memory requirements
  20. -------------------
  21.  
  22. Starflight requires a minimum of 256K on a "regular" PC.  Because of the
  23. added RAM overhead for PCjr video buffers, etc., you will probably need a
  24. minimum of 320K to run Starflight on a PCjr.  Be sure to configure your DOS
  25. boot disk to use the extra memory.  For IBM PCjr memory expansion sidecars,
  26. this means including the line
  27.  
  28. DEVICE=PCJRMEM.COM
  29.  
  30. as the first line of the CONFIG.SYS file on your DOS boot disk.  If you
  31. have a large amount of memory (e.g., 640K), you may want to force
  32. everything to run in expansion memory, for added speed.  For IBM PCjr
  33. memory expansion, this would be done by including
  34.  
  35. DEVICE=PCJRMEM.COM /C
  36.  
  37. as the first line of the CONFIG.SYS file.
  38.  
  39.  
  40. Video problems
  41. --------------
  42.  
  43. Starflight does not set up the video chips properly for the PCjr.  The
  44. problem manifests itself as a wild scattering of lines and pixels on the
  45. display, giving the appearance of a TV set with horizontal hold problems.
  46. To fix this problem, we must make a small modification to the Starflight
  47. program.  To perform the modification, you will need:
  48.  
  49. Your original (legitimate) Starflight diskettes
  50. 2 blank diskettes (3 if you want to back up the patch)
  51. The DEBUG program (which comes with DOS).
  52.  
  53. 1.  Using DISKCOPY, copy the original Starflight disks that came with your
  54. package onto the two blank ones.  Put your originals away.
  55.  
  56. 2.  Insert the disk containing DEBUG, type "debug", and press the Enter
  57. key.  DEBUG should respond with a hyphen, '-'.
  58.  
  59. 3.  Insert the copy of the Starflight A disk.  Enter the following two
  60. lines, pressing Enter after each:
  61.  
  62. n starflt.com
  63. l
  64.  
  65. After a few moments of disk access, a hyphen prompt should appear.
  66.  
  67. 4.  We now must verify that we are patching the correct part of the
  68. program.  For now we must assume that all Starflight disks shipped by EA
  69. for IBM systems have been the same. [Binary's Note: To date they have all been the same. Any future releases will include compatibility with EGA and JR, obviating this patch.]
  70.  
  71. Type:
  72.  
  73. d 8dcc l e
  74.  
  75. DEBUG should display:
  76.  
  77. xxxx:8DCC  BA D4 03 BE                  :T.>
  78. xxxx:8DD0  16 8D E8 26 FF 83 3E AF-8D 01     ..h&..>/..
  79.  
  80. Examine these numbers closely.All of them MUST agree with the numbers
  81. listed here, except for the numbers I have shown here as "xxxx".  If there
  82. is a difference, the program has probably changed and this patch will not
  83. work.  If all the numbers agree, you may proceed to the next step.
  84.  
  85. We will now replace some of the old code with new code.  There are two
  86. different patches; choose either step 5 or step 6.  DON'T apply both patches.
  87.  
  88. 5.  The "old" patch.  This patch fixes the video initialization problem
  89. when running Starflight on the PCjr, but it has some limitations:
  90.  
  91.     - It only provides 4-colour RGB output, using the cyan/magenta/
  92.       black/white palette;
  93.  
  94.     - It will produce 16-colour output in composite mode, but the
  95.       colours displayed will be incorrect.
  96.  
  97. When I created the original patch in August, I was more immediately
  98. concerned with just getting Starflight to run on the PCjr, having spent the
  99. money on the program and finding myself unable to use it.  I am leaving the
  100. old patch here because some users have discovered a use for it on IBM PCs,
  101. XTs, and AT's; namely, if they issue the "graphics" command from DOS before
  102. running Starflight with the old patch installed, they can print the screen
  103. while the game is running.  The old patch can also be used to get
  104. Starflight to run on machines with EGA cards.
  105.  
  106. Type the following exactly, taking special care to get it right.  Check the
  107. line once or twice before pressing the Enter key:
  108.  
  109. e 8dcc b8 04 00 83 ff 01 75 02 b0 05 cd 10 eb 3c
  110.  
  111. Now, let's check the patch.  Type:
  112.  
  113. u 8dcc l e
  114.  
  115. DEBUG should display:
  116.  
  117. xxxx:8DCC B80400    MOV AX,0004
  118. xxxx:8DCF 83FF01    CMP DI,+01
  119. xxxx:8DD2 7502        JNZ 8DD6
  120. xxxx:8DD4 B005        MOV AL,05
  121. xxxx:8DD6 CD10        INT10
  122. xxxx:8DD8 EB3C        JMP 8E16
  123.  
  124. If you do not get this result, go back to step 5 and try again.  Most
  125. likely one of the values was entered incorrectly.  If your results agree
  126. with the text shown here, go to step 7.
  127.  
  128. 6.  The "new" patch, which will ONLY run on a PCjr.  It fixes the video
  129. problem and produces 16-colour output on RGB or composite displays, using the
  130. correct palette of colours.  There is one catch:  The patch must be applied
  131. to a fresh copy of the original disks; it can NOT be applied to a game already
  132. in progress.  If you patch a game already in progress, the change will not
  133. "take", because Starflight makes a separate copy of the video initialization
  134. routines in STARA.COM.This copy cannot be patched, because doing so would
  135. corrupt the save file and cause an integrity error when the saved game is
  136. restored.
  137.  
  138. Type the following exactly, taking special care to get it right.  Check the
  139. line once or twice before pressing the Enter key:
  140.  
  141. e 8dcc b8 08 00 cd 10 1e 0e 1f ba df 8d b8 02 10 cd 10 1f eb 37
  142.  
  143. Then type the following, also checking it carefully before pressing Enter:
  144.  
  145. e 8ddf 00 02 01 03 04 08 05 09 06 0a 07 0b 0c 0e 0d 0f 00
  146.  
  147. Now, let's check the patch.  Type:
  148.  
  149. u 8dcc l 13
  150.  
  151. DEBUG should display:
  152.  
  153. xxxx:8DCC B80800    MOV AX,0008
  154. xxxx:8DCF CD10        INT10
  155. xxxx:8DD1 1E        PUSH DS
  156. xxxx:8DD2 0E        PUSH CS
  157. xxxx:8DD3 1F        POP DS
  158. xxxx:8DD4 BADF8D    MOV DX,8DDF
  159. xxxx:8DD7 B80210    MOV AX,1002
  160. xxxx:8DDA CD10        INT10
  161. xxxx:8DDC 1F        POPDS
  162. xxxx:8DDD EB37        JMP 8E16
  163.  
  164. Type:
  165.  
  166. d 8ddf l 11
  167.  
  168. DEBUG should display:
  169.  
  170. xxxx:8DDF  00     .
  171. xxxx:8DE0  02 01 03 04 08 05 09 06-0A 07 0B 0C 0E 0D 0F 00   ................
  172.  
  173. If you do not get these results, go back to step 6 and try again.  Most
  174. likely one of the values was entered incorrectly.  If your results agree
  175. with the text shown here, go to step 7.
  176.  
  177. 7.  We now have to write the patched file back to disk.  Type "w" and press
  178. the Enter key.DEBUG should respond:
  179.  
  180. Writing D3B6 bytes
  181.  
  182. 8.  Type "q" and press the Enter key to leave DEBUG.
  183.  
  184. You now have a version of Starflight that will run on the PCjr, without the
  185. video problems.  At this point, you might wish to back up the patched A
  186. disk and put it away with your originals, so that you won't have to repeat
  187. this patch procedure the next time you want to start a new game; In this
  188. case, all you would have to do is DISKCOPY your patched A disk and original
  189. B disk to the disks you are using for the new game.
  190.  
  191.  
  192. Using your patched copy of Starflight
  193. -------------------------------------
  194.  
  195. After booting your PCjr to get the expansion memory, enter the command
  196.  
  197. mode co80
  198.  
  199. from your DOS disk.  This is not ABSOLUTELY necessary, but without it you
  200. will not see the first prompt asking you to insert the disk with STARB.COM
  201. on it.
  202.  
  203. Now start the game by entering
  204.  
  205. starflt
  206.  
  207. When you get to the screen asking you your display type, the option you
  208. select will depend on whether you have applied the old (4-colour) patch,
  209. or the new PCjr 16-colour patch.
  210.  
  211. If you are running on a PCjr and have applied the 16-colour patch, select '3'
  212. (Composite monitor or color TV).  This will produce correct output on both
  213. composite _and_ RGB displays.  Do not select '2' (RGB), as this will cause
  214. Starflight to use the colours incorrectly.  (RGB mode uses different colours
  215. in some places.)
  216.  
  217. If you are running with the old patch, you may select '1', '2', or '3'.
  218. NEVER select '4' (Hercules monochrome adapter); the program will die
  219. a graceless death.  You cannot use the Hercules card or IBM Monochrome Display
  220. with either of the patches given here.
  221.  
  222.     - Option 1 (Black and white) will produce a black-and-white picture on
  223.       a TV or composite colour monitor.  Note that option 1 will produce a
  224.       colour picture on the PCjr Color Display, which doesn't pay attention
  225.       to the colour burst signal and always assumes it's there.
  226.  
  227.     - Option 2 will produce colour output on an RGB display, using the
  228.       standard cyan-magenta-white-black palette.
  229.  
  230.     - Option 3 is for use with colour composite monitors or colour TVs;
  231.       however, if you have one of these, you are probably better off not
  232.       patching your program at all, as "regular" PCs should generate
  233.       correct output.  (If you have a PCjr and a composite monitor, you
  234.       should apply the 16-colour patch.)  "Regular" PC owners should only
  235.       apply the old patch if they want to take advantage of graphics dumps
  236.       (see instructions for old patch, above).
  237.  
  238.  
  239. Notes
  240. -----
  241.  
  242. In the end, I was amazed at how easy the 16-colour patch for the PCjr
  243. turned out to be.  For those of you who want to know, the patch uses a
  244. graphics mode peculiar to the PCjr, the so-called "lo-res" 16-colour
  245. 160 x 200 mode.  The lo-res mode stores two double-width pixels side-by-side
  246. in a single byte, like so:
  247.  
  248. +--+--+--+--+--+--+--+--+
  249. |           |           |
  250. +--+--+--+--+--+--+--+--+
  251.  
  252. Four bits per pixel allows 16 different values to be stored there; this
  253. allows 16 different colours.
  254.  
  255. Starflight, in its RGB mode, uses the 4-colour 320 x 200 graphics mode
  256. ("medium-res").  Four-colour medium-res mode stores four pixels per byte,
  257. like this:
  258.  
  259. +--+--+--+--+--+--+--+--+
  260. |     |     |     |     |
  261. +--+--+--+--+--+--+--+--+
  262.  
  263. Two bits per pixel allows 4 different values, giving four colours.
  264.  
  265. Those of you playing Starflight in the four-colour mode will notice that
  266. Starflight "doubles up" its pixels, representing one colour (for example)
  267. by a white pixel paired with a magenta pixel.  Nearly ALL of the graphics
  268. (except perhaps the title screens) are done this way.  Doubling up the
  269. pixels effectively gives 4 bits per wide pixel.  This is done to fake out
  270. the composite output into producting 16 colour values.Aha! I thought.
  271. Why not just turn on the lo-res mode, and let these 4-bit groups be
  272. interpreted as 16 different colours in RGB?  So that's what I did.  The
  273. only remaining thing to do was to rearrange the colour settings to agree
  274. with what the composite output would produce; in fact, most of the patch
  275. does nothing but set the colours up properly.
  276.  
  277.  
  278. Acknowledgments
  279. ---------------
  280.  
  281. Thanks go to Alan Ford [73317,1426], who brought the graphics dump use of
  282. the old patch to my attention.A big thank you to Rod McConnell, one of
  283. Starflight's co-authors, who put up with my pestering and provided me with
  284. the "official" set of colour values to use in the PCjr 16-colour patch.
  285. And of course a nod to the various brave souls who tried the "old" patch on
  286. their EGA cards and discovered that--it worked!
  287.  
  288.  
  289. Feedback
  290. --------
  291.  
  292. Please send any questions or correspondence to Lee Johnson, [71310,405].
  293. [Binary Note:That's if you're on Compuserve. On GEnie you can leave notes in the IBM roundtable, Category 7 (Games) Topic 27 (Starflight) or send mail to R.GONSALVES ( Bob Gonsalves, Binary Systems)]
  294.  
  295. Have fun!
  296.